The paper asks how strongly an LLM-generated friendship network depends on cultural framing, prompt language, model size, and generation architecture. It uses one fixed roster of 50 synthetic people sampled from U.S. demographic marginals, with gender, age, race or ethnicity, religion, political affiliation, and GPT-4o-synthesised interests. It compares gpt-4.1-nano, gpt-4.1-mini, and gpt-4.1 at temperature 0.8 under four methods: global proposes the whole network in one call; sequential processes people one by one with degree context; local makes person-level nominations; and iterative performs three add/drop rounds. The design contains 24 sequential culture networks, 72 global/local/iterative culture networks, and 96 language networks across all four methods, with two runs per condition: 192 files.
The descriptive results do show prompt sensitivity. Aggregates change when culture wording, language, method, and GPT-4.1 variant change. Among the five attributes included in core prompts and CSVs, political affiliation is often the largest observed-to-expected same-group ratio for sequential, local, and iterative generation, while global often elevates age. Tables also show a stable disagreement ordering: full-mini is lower than mini-nano, which is lower than full-nano. Some Hindi conditions have elevated religion ratios, and largest-component connectivity varies. Across the 192 released artifacts, recomputed mean density is 0.150 and mean largest-component share is 0.699. By method, densities are approximately 0.059 global, 0.179 local, 0.178 sequential, and 0.182 iterative; largest-component shares are 0.635, 0.770, 0.810, and 0.582. These are descriptive observations about model outputs, not estimates of human networks.
The implementation does not match several central definitions. The paper calls all 192 networks directed and formalizes directed nominations, but generate_networks.py constructs nx.Graph objects and the runners load them as undirected. Appendix B says local uses a fixed random neighborhood of k=12; current code presents all other 49 profiles. The n5 filename component is mean_choices=5, the mean of an exponential draw for requested friends, not neighborhood size. The appendix says iterative starts from sequential output; the code first constructs a local graph. The formal conditional families and measured artifacts are not the same experiment.
Interests need a clear correction. All three runners set include_interests=false and DEFAULT_DEMOS omits interests, so the model never sees interests while forming these networks. A plotting script later deleted from the checkout computes post-hoc Jaccard similarity between roster interests and labels it homophily. Because interests were synthesised conditional on other attributes, the ratio can reflect correlation, confounding, or chance; it does not show that interests drove friendship selection. It is also not the formal categorical equality metric. The 2.111 global value is a post-hoc association on edges generated without that field.
Artifact inspection confirms all 192 expected paths exist and each contains 50 valid numeric IDs, with 22 to 268 edges. They are not 192 valid graphs under the paper's definition: 16 networks contain 23 self-loops. The parser only checks that an ID exists and accepts source=target. Verification reports 192/192 because they check adjacency-list, PNG, and statistic presence, readability, 50 nodes, and edge_count greater than zero; they do not check direction, self-loops, condition provenance, or mathematical consistency. Self-loops can bias density, clustering, and homophily.
Edge distance has a direct bug. Graphs are nx.Graph, but compute_edge_distance divides disagreement by n(n-1), the directed universe. For a simple undirected graph the denominator is n(n-1)/2. Recomputing released pairs gives repository mean 0.1136 and correct mean 0.2272: every value is exactly halved. Rankings may survive, but intervals such as 0.09-0.10 and 0.19-0.24 do not express the defined proportion. Louvain also has no seed, Python random.shuffle is unseeded in iterative generation, and Chat Completions receives neither a seed nor a dated model snapshot. The two seeds are ordering seeds, not deterministic provider replicates.
The headline realism conclusion is not supported by Figure 3. Its historical script, deleted before the final commit although the PNG remains, uses eight real CSV graphs rather than 36 and one sequential GPT-4.1-mini graph rather than an LLM sample. It generates 50 ER, 50 BA, and 50 WS graphs while the text says 30 seeds. It hard-codes N_REAL=36 as an assumed mean although the eight graphs have 36, 67, 31, 31, 70, 34, 39, and 39 nodes, mean 43.375. Real and LLM CSVs use Louvain, whereas baselines use greedy modularity. Only ER is directly density-matched; BA and WS are around 0.16-0.17 versus real 0.20, and WS uses fixed p=0.3.
The bars themselves contradict declared superiority. ER matches real density near 0.20 better than the single LLM graph at 0.15. WS matches real modularity near 0.38 while LLM is 0.50, despite the caption saying all classical models fall short. All three classical graphs have largest-component share near 1.00 against real 0.99, whereas LLM is 0.48. For clustering, LLM 0.61 is 0.16 away from real 0.45; BA and WS 0.28 are 0.17 away, only marginally different. Average shortest path is absent from the figure despite inclusion in the superiority sentence. This shows high clustering and modularity in one selected LLM graph; it does not establish greater realism. High metrics in an unsigned graph also do not demonstrate Cartwright-Harary structural balance.
Statistical scope is narrow: two runs per cell, no hypothesis test or interaction model, crossed factors described as one-variable-at-a-time, and many descriptive comparisons. Reusing one U.S. roster preserves prompt control, but India, Japan, and Brazil are framing labels applied to U.S. personas, not national populations. There is no ground-truth friendship network and no reproducible mapping from the real benchmark CSV to named sources. Cultural explanations such as Hindi elevating religion because of corpus organization are hypotheses, not measured mechanisms.
The repository remains useful because it releases the roster, 192 adjacency lists, statistics, images, and orchestration code; 362 CSVs with 98,448 rows, two JSONs, and 204 PNGs all open, and Python compiles. It is not an exact reproduction package: requirements.txt requires Pillow 9.3.0 and 10.4.0 simultaneously; there is no lock, test suite, CI, or container; raw completions and per-call prompts are not stored; and final figures depend on deleted scripts recoverable only from Git history. The iterative include_reason branch also references an undefined reason variable. Overall, the paper provides useful evidence of sensitivity to prompt choices, but its released graphs are not the directed objects it formalizes, its distance magnitudes are wrong, and its realism claim contradicts the released evidence.